import Axios from "axios";
import store from '../store'
import router from '../router'
import {  Message } from "element-ui";

// 创建axios实例
const axios = Axios.create({
  // baseURL: 'http://8.135.121.105:9000', // wiki
  // baseURL: 'http://192.168.1.87:9001', // max
  // baseURL: 'http://192.168.1.87:9005', // max
  // baseURL: 'http://127.0.0.1:9600/api', // peter
  // withCredentials: true, // 跨域时若要发送cookies需设置该选项
  baseURL: '/api',
  timeout: 120000, // 超时
  withCredentials: false, // 允许携带cookie
});

// 请求拦截
axios.interceptors.request.use(
  config => {
    // 登录页面不加token
    if (router.history.current.name !== 'login') {
      if (localStorage.getItem('FOREST_TOKEN')) { // 判断是否存在token，如果存在的话，则每个http header都加上token
        config.headers['X-Access-Token']= localStorage.getItem('FOREST_TOKEN')
      }
    }
    return config
  },
  err => {
    return Promise.reject(err)
  }
);

// 响应拦截
axios.interceptors.response.use(
  response => {
    console.log("1212121")
    if (response.status === 200) {
           return Promise.resolve(response.data);
      }
  },
    error => {
    let res = error.response
    switch (res.status) {
      case 200:
        return Promise.reject(error.response.data.data) // 返回接口返回的错误信息
      case 401:
        // 返回 401 清除token信息并跳转到登录页面
        // store.commit(types.LOGOUT);
        // router.replace({
        //  path: '/login',
        //  query: {redirect: router.currentRoute.fullPath}
        // })
        console.log('未登录 或者token过期')
        break
      case 403:
        console.log('您没有该操作权限')
        break
      // alert('您没有该操作权限');
      case 500:
      // MessageBox(store.state.aginLogin + '!', store.state.tips, {
      //   confirmButtonText: store.state.detemine,
      //   cancelButtonText: '',
      //   type: 'warning'
      // }).then(() => {
      //   localStorage.removeItem('userInfo')
      //   router.replace({
      //     path: '/login',
      //     query: {redirect: router.currentRoute.fullPath}
      //   })
      // })
    }
    return Promise.reject(error.response.data) // 返回接口返回的错误信息
  }
);

export default axios
